// Integer types
#include <stdint.h>

#ifndef FXP_H
#define FXP_H
// Fixed point arithmetic operations

// 16 bit add
int16_t fxp_add(int16_t var1,int16_t var2);
// 16 bit sub
int16_t fxp_sub(int16_t var1,int16_t var2);
// 16 bit mult
int16_t fxp_mult(int16_t var1,int16_t var2);
// 16 bit mult with round
int16_t fxp_mult_r(int16_t var1,int16_t var2);
// 16 bit abs
int16_t fxp_abs(int16_t var1);
// 32 bit add
int32_t fxp_L_add(int32_t L_var1,int32_t L_var2);
// 32 bit sub
int16_t fxp_L_sub(int16_t L_var1,int16_t L_var2);
// 32 bit mult
int16_t fxp_L_mult(int16_t L_var1,int16_t L_var2);
// 32 bit norm(returns -1 if it fails)
int16_t fxp_L_norm(int32_t L_var1);
// 16 bit div
int16_t fxp_div(int16_t var1,int16_t var2);

#endif // FXP_H
